package com.ssy.lingxi.contract.api.model.vo.request;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import java.io.Serializable;

/**
 * 合同执行情况新增VO
 * @author 伍将
 * @date 2021/3/9
 * @version 2.0.0
 */
public class ContractExecuteInfoAddVO implements Serializable {
    private static final long serialVersionUID = -5366900719992989752L;

    /**
     * 合同id
     */
    @NotNull(message = "合同id需大于0")
    @Positive(message = "合同id需大于0")
    private Long contractId;

    /**
     * 单据Id
     */
    @NotNull(message = "单据Id需大于0")
    @Positive(message = "单据Id需大于0")
    private Long orderId;

    /**
     * 单据编号
     */
    @NotBlank(message = "单据编号不能为空")
    private String orderNO;

    /**
     * 单据摘要
     */
    private String orderAbstract;

    /**
     * 单据类型：1-订单，2-退货申请单
     * ContractOrderTypeEnum
     */
    @NotNull(message = "单据类型需大于0")
    @Positive(message = "单据类型需大于0")
    private Integer orderType;

    /**
     * 单据时间
     */
    @NotNull(message = "单据时间需大于0")
    @Positive(message = "单据时间需大于0")
    private Long orderTime;

    /**
     * 单据金额
     */
    @NotNull(message = "单据金额需大于0")
    @Positive(message = "单据金额需大于0")
    private Double orderAmount;

    /**
     * 是否含税：0-否，1-是
     * CommonBooleanEnum
     */
    @NotNull(message = "是否含税不能为空")
    @PositiveOrZero(message = "是否含税不能为空")
    private Integer isHasTax;

    /**
     * 税率
     */
    @NotNull(message = "税率不能为空")
    @PositiveOrZero(message = "税率不能为空")
    private Double taxRate;

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderNO() {
        return orderNO;
    }

    public void setOrderNO(String orderNO) {
        this.orderNO = orderNO;
    }

    public String getOrderAbstract() {
        return orderAbstract;
    }

    public void setOrderAbstract(String orderAbstract) {
        this.orderAbstract = orderAbstract;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(Long orderTime) {
        this.orderTime = orderTime;
    }

    public Double getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(Double orderAmount) {
        this.orderAmount = orderAmount;
    }

    public Integer getIsHasTax() {
        return isHasTax;
    }

    public void setIsHasTax(Integer isHasTax) {
        this.isHasTax = isHasTax;
    }

    public Double getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(Double taxRate) {
        this.taxRate = taxRate;
    }
}
